package main

import (
	"fmt"
	"github.com/robfig/cron"
	"jdsd/actions"
	"jdsd/config"
	"log"
)

func TaskFlow() {
	for _, user := range config.UserInfoList {
		// 先验证登录
		err, info := actions.GetUserInfo(user.Key)
		if err != nil {
			log.Println(err.Error())
			return
		}
		// 签到+2
		actions.SignIn(user.Key)
		// 每日一题+9
		for i := 0; i < 5; i++ {
			actions.DailyTrain(user.Key)
		}
		// 阅读+10
		actions.Read(user.Key)
		//匹配+9
		//err = actions.PK(user.Key)
		//if err != nil {
		//	log.Println("匹配挑战失败,十二小时后重试！！")
		//}
		_, info = actions.GetUserInfo(user.Key)
		//邮箱通知 需要填入Email
		tip := fmt.Sprintf("%s同学,你今日的经典诵读已完成，你目前的积分为:%s", info.Re.UserName, info.Re.Credits)
		actions.SendEmail(user.Email, tip)
	}
}
func main() {
	// 初始化 Cron 实例
	c := cron.New()
	// 添加定时任务
	err := c.AddFunc("0 0 9 * * *", TaskFlow)
	if err != nil {
		log.Fatal("定时任务开启失败")
	}
	// 启动 Cron
	c.Start()
	log.Println("定时任务已开启！！")
	// 延迟关闭 Cron
	defer c.Stop()
	// 阻塞主线程
	select {}
}
